| 1 | * Basic Setup |
| 2 | |
| 3 | I work on the static content of the site using [[http://mwolson.org/projects/EmacsMuse.html][Emacs Muse]]. My muse |
| 4 | configuration is pretty long and available in my |
| 5 | [[darcsweb::site-emacs/init.d/muse.el][site-emacs repository]]. The site itself exists in a [[darcsweb::unknownlamer.org][darcs repository]] |
| 6 | which is a fork of the source repository I edit locally--the source |
| 7 | repository contains muse/image files while the site repository |
| 8 | contains html updates as a separate series of patches. |
| 9 | |
| 10 | This provides a very nice editing environment and makes publishing |
| 11 | fairly easy--I push edits from my laptop to my workstation and then |
| 12 | off to [[http://hcoop.net][HCoop]] with the html updates. Almost no effort is spent dealing |
| 13 | with some dumb web interface or other pointless things making it much |
| 14 | easier for me to just write things and toss them up onto the web. |
| 15 | |
| 16 | * Scripts |
| 17 | |
| 18 | There are a few scripts and templates in the [[darcsweb::site-support]] |
| 19 | repository that I use to update the |
| 20 | site. [[darcsweb::site-support/update.sh]] automates the process of |
| 21 | sending patches off to the server via afs. |
| 22 | |
| 23 | ** Book Database |
| 24 | |
| 25 | [[Book List]] is autogenerated by [[darcsweb::site-support/books.lisp]] which |
| 26 | reads a template and a small sexp *database* of book entries and spits |
| 27 | out a muse file which is not kept under VC. This works well for me |
| 28 | currently, but I intend to eventually *upgrade* this simple system to an |
| 29 | [[http://common-lisp.net/project/elephant/][Elephant]] object database with a [[http://common-lisp.net/project/mcclim/][CLIM]] frontend for editing |
| 30 | entries. I'll probably end up writing a minimal database manager for |
| 31 | the sexp based system first. |
| 32 | |
| 33 | ** RSS Feed |
| 34 | |
| 35 | The site rss feed is generated by [[darcsweb::site-support/rss.lisp]]. It |
| 36 | fetches the darcs xml changelog for interesting files and then spits |
| 37 | out a tolerable feed with automagically generated links from =*.muse= to |
| 38 | =*.html=. A [[darcsweb::site-support/update-rss-binary][dumped binary]] is run from a darcs hook on the main |
| 39 | repository that handily updates the feed whenever I commit. |
| 40 | |
| 41 | <code>apply posthook update-site-rss |
| 42 | apply run-posthook</code> |
| 43 | |
| 44 | Boring old Apache is used to serve up the generated feed. The feed |
| 45 | stays updated when I update, and Apache deals with properly letting |
| 46 | readers know when the file last changed and whatnot. |
| 47 | |
| 48 | * License |
| 49 | |
| 50 | All of the scripts used to generate the site are in the public domain |
| 51 | unless otherwise mentioned in the files themselves. To use them |
| 52 | anywhere else would require modification, but a few chunks of code |
| 53 | could be generally useful for other things. |